package models

import (
	"blog_go/models/ctype"
	"github.com/sirupsen/logrus"
	"gorm.io/gorm"
	"os"
)

// banner表
type ImageModel struct {
	MODEL
	Path      string          `gorm:"size:256"`                  // 图片的路劲
	Hash      string          `gorm:"size:256"`                  // 图片的hash值用于判断重复
	Name      string          `gorm:"size:64"`                   // 图片名称
	ImageType ctype.ImageType `gorm:"type:int;size:4;default:1"` // 图片类型在本地还是七牛
}

func (ImageModel) TableName() string {
	return "image"
}

// 实现这个gorm方法 就会再删除执行之前执行
func (b *ImageModel) BeforeDelete(tx *gorm.DB) error {
	if b.ImageType == ctype.Local {
		// 删除本地存储的图片
		err := os.Remove(b.Path)
		if err != nil {
			logrus.Error(err)
			return err
		}
	}
	return nil
}
